import {message} from 'antd';
import {formatMessage} from './intl';

export const newOrderValidator = (data, claimWorkItemDetails, claimMaterialDetails, details) => {
    //增加判断必填字段
    const emptyErrors = [];
    if(!data || !data.brandId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.brandId',
            defaultMessage: '品牌'
        }));
    if(!data || !data.repairType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.repairType',
            defaultMessage: '索赔类型'
        }));
    if(!data || !data.faultType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.faultType',
            defaultMessage: '故障类型'
        }));
    if(!data || !data.repairCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.repairCode',
            defaultMessage: '维修单号'
        }));
    if(!data || !data.repairDate)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.repairDate',
            defaultMessage: '维修日期'
        }));
    if(!data || !data.mileage)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.mileage',
            defaultMessage: '行驶里程'
        }));
    if(!data || !data.engineCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.engineCode',
            defaultMessage: '发动机号'
        }));
    if(!data || !data.transmissionSn)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.transmissionSn',
            defaultMessage: '变速箱号'
        }));
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    if(claimMaterialDetails.length <= 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.claimMaterialDetails',
            defaultMessage: '材料清单不能为空'
        })}`);
        return false;
    }
    if(!claimMaterialDetails.some(d => d.isCaused === true)) {
        message.warning(formatMessage({
            id: 'validator.message.isCaused',
            defaultMessage: '请选择一个材料为主损件'
        }));
        return false;
    }
    if(claimMaterialDetails.some(d => d.mgmtRate === null)) {
        message.warning(formatMessage({
            id: 'validator.message.mgmtRate',
            defaultMessage: '当前总代没有管理费率，请维护'
        }));
        return false;
    }
    return true;
};

export const newOrUpdateOrderValidator = (data, claimWorkItemDetails, claimMaterialDetails, details) => {
    //增加判断必填字段
    const emptyErrors = [];
    if(!data || !data.brandId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.brandId',
            defaultMessage: '品牌'
        }));
    if(!data || !data.repairType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.repairType',
            defaultMessage: '索赔类型'
        }));
    if(!data || !data.faultModeId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.faultModeId',
            defaultMessage: '故障原因'
        }));
    if(!data || !data.faultItemId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.faultItemId',
            defaultMessage: '故障代码'
        }));
    if(!data || !data.faultType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.faultType',
            defaultMessage: '故障类型'
        }));
    if(!data || !data.repairCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.repairCode',
            defaultMessage: '维修单号'
        }));
    if(!data || !data.repairDate)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.repairDate',
            defaultMessage: '维修日期'
        }));
    if(!data || !data.supplierCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.supplierId',
            defaultMessage: '供应商'
        }));
    if(!data || !data.mileage)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.mileage',
            defaultMessage: '行驶里程'
        }));
    if(!data || !data.engineCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.engineCode',
            defaultMessage: '发动机号'
        }));
    if(!data || !data.transmissionSn)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.transmissionSn',
            defaultMessage: '变速箱号'
        }));
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    if(data.faultItemCnName === '其他' && data.faultItemName === data.faultItemNameData) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.message.faultItemCnName',
            defaultMessage: '故障代码选择其他的时候,必须修改其中的内容'
        })}`);
        return false;
    }
    if(data.faultModeName === 'Other') {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.message.faultModeName',
            defaultMessage: '故障原因选择Other的时候,必须修改其中的内容'
        })}`);
        return false;
    }
    if(claimMaterialDetails.length <= 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.claimMaterialDetails',
            defaultMessage: '材料清单不能为空'
        })}`);
        return false;
    }
    if(!claimMaterialDetails.some(d => d.isCaused === true)) {
        message.warning(formatMessage({
            id: 'validator.message.isCaused',
            defaultMessage: '请选择一个材料为主损件'
        }));
        return false;
    }
    if(claimMaterialDetails.some(d => d.mgmtRate === null)) {
        message.warning(formatMessage({
            id: 'validator.message.mgmtRate',
            defaultMessage: '当前总代没有管理费率，请维护'
        }));
        return false;
    }
    return true;
};
export const approveValidator = data => {
    //增加判断必填字段
    const emptyErrors = [];
    if(!data || !data.approveComment)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.approveComment',
            defaultMessage: '审核意见'
        }));
    if(!data || !data.engineCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.engineCode',
            defaultMessage: '发动机号'
        }));
    if(!data || !data.transmissionSn)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.transmissionSn',
            defaultMessage: '变速箱号'
        }));
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    if(data && data.approveComment && data.approveComment.length > 400) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.empty.approveCommentLength',
            defaultMessage: '审核意见长度不能超过400个字'
        })}`);
        return false;
    }
    return true;
};

export const adjustValidator = data => {
    //增加判断必填字段
    const emptyErrors = [];
    if(!data || !data.status)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.status',
            defaultMessage: '审核结果'
        }));
    if(!data || !data.approveComment)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.approveComment',
            defaultMessage: '审核意见'
        }));
    if(!data || !data.engineCode)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.engineCode',
            defaultMessage: '发动机号'
        }));
    if(!data || !data.transmissionSn)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.transmissionSn',
            defaultMessage: '变速箱号'
        }));
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    if(data && data.approveComment && data.approveComment.length > 400) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.empty.approveCommentLength',
            defaultMessage: '审核意见长度不能超过400个字'
        })}`);
        return false;
    }
    return true;
};
